Spelling correction is an important feature in many different types of software applications, such as word processing applications and email applications. When a character string or word includes spelling errors that result in invalid words, a lexicon-based spell checker can be used to suggest replacement words for the misspelled word. Such misspellings may occur due to a typo or an ignorance of the spelling of the word.
Conventional letter-type spell checking systems compare the words in the text entry to a lexicon of words and identifies the words in the text entry that are not found in the lexicon. For example, the spell checker would identify the text entry “animl” as being a misspelled word. One or more replacement words are often suggested for the misspelled word after determining an edit distance from the text entry to a target word. The edit distance represents the change that is required to form a valid alternative word. The word in the lexicon having the shortest edit distance from the typed invalid word is the first replacement word that is suggested to the user. Other replacement words can also be suggested that may contain more than one edit distance. For example, in the text entry “animl”, the spell checker can suggest the closest match in the lexicon, which is “animal” having an edit distance of one. Other words from the lexicon can also be suggested that have an edit distance of greater than one. For example, the spell checker can suggest the words “anima” and “animate” as possible replacement words for the misspelled word.
Although conventional letter-type spell checking systems can correct various spelling errors by inserting letters, deleting letters, substituting letters and transposing letters, conventional letter-type spell checking systems are unable to suggest replacement words for phonetic-type spelling errors. Phonetic-type spelling errors include those types of spelling errors that are a result of spelling a word based on the way that it sounds. In addition, creating a spell checking system that consider phonetics would be a very expensive and difficult process for applying it across different languages. In general, programmers skilled in the different languages and idiosyncrasies of the different languages would be needed to hand-tune any sort of spell checker.
The discussion above is merely provided for general background information and is not intended to be used as an aid in determining the scope of the claimed subject matter.